/*
 * fft_rj.h
 *
 *  Created on: 27.02.2013
 *      Author: Roma Jam
 */

#ifndef FFT_RJ_H_
#define FFT_RJ_H_

#include "fftw3.h"
#include "complex"
using namespace std;


enum ffttype_t {tf_forward, tf_backward };

class fft_t {
private:
    int Type;
    void RestoreSpectrum(complex<double> *ArrIn, complex<double> *ArrOut, const int ASize);

public:
    void FFT(complex<double> *ArrIn, complex<double> *ArrOut, const int ArrSize, ffttype_t TypeFft);
    void Norm(complex<double> *Arr, int aSize);
    int MaxSearch(complex<double> *Arr, int aSize);
    void Reset(complex<double> *Arr, int aSize);
};

extern fft_t Transform;
#endif /* FFT_RJ_H_ */
